package function

import java.sql.Date

class Scala_Fun {
  /**
   * 函数式编程
   */


}

object Scala_Fun {
  def main(args: Array[String]): Unit = {
    //    val niming=(num:Int,name:String)=>{
    //        println(s"${name}和${name}${num}")
    //    }
    //    niming(25,"张三")
    def fun1(): String = {
      "张三"
    }

    //    val v1=fun1()
    //    val v2=fun1 _
    //    println(v1)
    //    println(v2)
    //    println(v2.getClass.getSimpleName)
    def fun2() = {
      //返回函数值
      fun1 _
    }

    println(fun2())
    println(fun2()())

    /**
     * 惰性函数
     */
    def fun_lazy(): String = {
      println("历史")
      "史密斯"
    }

    lazy val res = fun_lazy()
    println(res)

    /**
     * 柯里化函数
     * */
    def fun3(a: Int)(b: Int)(f: (Int, Int) => Int) = {
      f(a, b)
    }

    println(fun3(10)(20)(_ * _))
    import java.sql.{Date}

  }


}
